package cn.tedu.nybikeT.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import cn.tedu.nybikeT.pojo.AnalyzedCrashDO;
import cn.tedu.nybikeT.pojo.CrashDO;
import cn.tedu.nybikeT.pojo.InOutDO;
import cn.tedu.nybikeT.pojo.PopularStationDO;
import cn.tedu.nybikeT.pojo.StationInfoDO;
import cn.tedu.nybikeT.pojo.TopBikeDO;
import cn.tedu.nybikeT.pojo.TopBikeVO;
import cn.tedu.nybikeT.pojo.TripByUserDO;
import cn.tedu.nybikeT.pojo.TripByUserVO;
import cn.tedu.nybikeT.pojo.UnPopularStationDO;

/**
 * 
 * @author common
 *
 */
public interface DataAnalysisMapper {

	// Rory
	/**
	 * 按年份查找事故数据
	 * 
	 * @param year 所查数据的年份
	 * @return 事故数据对象
	 */
	List<CrashDO> queryCrashData(@Param("year") String year);

	/**
	 * 获取所有站点基本数据
	 * 
	 * @return
	 */
	List<StationInfoDO> getAllStationInfoData();
	// End

	/**
	 * !!!deprecated!!! 按年份查找事故数据
	 * 
	 * @param year 所查数据的年份
	 * @return 事故数据对象
	 */
	List<CrashDO> queryCrashData(@Param("year") String year, @Param("month") String month);

	/**
	 * 按年份和月份查找事故数据
	 * 
	 * @param year
	 * @param month
	 * @return
	 */
	List<AnalyzedCrashDO> getAnalyzedCrashData(@Param("year") Integer year, @Param("month") Integer month);

	/**
	 * 按年份查找事故数据
	 * 
	 * @param year
	 * @return
	 */
	List<AnalyzedCrashDO> getAnalyzedCrashDataByYear(@Param("year") Integer year);
	// hk

	// End

	// late-whale

	// End

	// Asia
	
	List<TopBikeDO> sqlGetBike();
	
	List<TripByUserDO> sqlGetUserType();
	// End

	// LRY
	/**
	 * 基于2019年查询访问最多的n个站点的信息
	 * 
	 * @param limit 查询的数据条数
	 * @return
	 */
	List<PopularStationDO> listPopularStationCount(@Param("limit") Integer limit);

	/**
	 * 基于2019年查询访问最少的n个站点的信息
	 * 
	 * @param limit 查询的数据条数
	 * @return
	 */
	List<UnPopularStationDO> listUnPopularStationCount(@Param("limit") Integer limit);

	/**
	 * 基于2019年高频站点车流量
	 * 
	 * @param limit 查询的数据条数
	 * @return
	 */
	List<InOutDO> listStationCount(@Param("limit") Integer limit);
	// End
}
